from PIL import Image, ImageDraw, ImageFont
import os

def create_icon():
    # 创建不同尺寸的图标
    sizes = [(256, 256), (128, 128), (64, 64), (48, 48), (32, 32), (16, 16)]
    images = []
    
    for size in sizes:
        # 创建一个新的图像，使用RGBA模式支持透明度
        image = Image.new('RGBA', size, (0, 0, 0, 0))
        draw = ImageDraw.Draw(image)
        
        # 计算圆形的尺寸和位置
        circle_size = min(size) - 4
        circle_pos = ((size[0] - circle_size) // 2, (size[1] - circle_size) // 2)
        
        # 绘制圆形背景
        draw.ellipse(
            [circle_pos[0], circle_pos[1], 
             circle_pos[0] + circle_size, circle_pos[1] + circle_size],
            fill=(0, 120, 215)  # 使用Windows蓝色
        )
        
        # 在圆形中绘制"QR"文字
        try:
            # 尝试加载微软雅黑字体
            font_size = int(circle_size * 0.5)
            font = ImageFont.truetype("msyh.ttc", font_size)
        except:
            # 如果找不到字体，使用默认字体
            font = ImageFont.load_default()
        
        # 计算文字位置使其居中
        text = "QR"
        text_bbox = draw.textbbox((0, 0), text, font=font)
        text_width = text_bbox[2] - text_bbox[0]
        text_height = text_bbox[3] - text_bbox[1]
        text_pos = (
            (size[0] - text_width) // 2,
            (size[1] - text_height) // 2
        )
        
        # 绘制文字
        draw.text(text_pos, text, fill="white", font=font)
        
        # 将图像添加到列表中
        images.append(image)
    
    # 保存为ICO文件
    icon_path = 'icon.ico'
    images[0].save(
        icon_path,
        format='ICO',
        sizes=sizes,
        append_images=images[1:]
    )
    
    print(f"图标已创建: {os.path.abspath(icon_path)}")

if __name__ == '__main__':
    create_icon() 